作業二
作者:應數四 蘇文宏
學號:8324057
題目:輸入數學運算式,計算其值,並將計算,並將計算結果印出。
說明:數學運算 式依其難易度,由易而難,分成下列三種:
(1)、運算元(operand)只含有整數(integer)值,例如
3+4*6-8/2
其計算結果應為 23。
(2)、運算元(operand)含有浮點數(float),例如
3.2+4.5*6-8/2
其計算結果應為 26.2。
(3)、運算元(operand)含有數學函數(function),例如
3.2+4.5*6-sqrt(16.0)/2
此處之sqrt()表示開平方根。其計算結果應為 28.2。除
了 sqrt()函數之外,尚可定義其他各式函數,如 sin、
cos、exp等等。
每人依個人之能力,擇定上述三種格式之一,讓使用者輸入
數學運算式。輸入之前,應善盡提示之責,告知使用者正確的
格式。輸入後,檢查其運算式格式是否正確。若運算式格式正
確無誤,則計算此運算式,並將結果印出。
程式使用說明:
(1)計算優先次序:
1. ()
2. 5ans、2x(變數的倍數,只能是數字)
3. sin、asin、cos、acos、
tan、atan、exp、ln、
sqrt、log、^、neg(負號)(一般函數)
4. *、/、mod、2sin 1(函數的倍數)
5. +、-
相同優先次序,則由右向左運算。
特別注意:
sin 5x = sin(5x) 、
sin 5cos 6 = sin 5*cos 6 = (sin 5) * (cos 6)
2^-3x = 2^(-3x)
2^-3x pi = 2^-3x*pi = (2^(-3x))*pi
(如不能確定運算優先次序,請用括號)
(2)使用方法:
一般數學運算式皆可,不分大小寫。
如:sin x 、 cos pi 、 exp ln 5 、 3(2-8^-1)
sqrt 5 、 6 mod 4
數字規則:第一字元一定要是數字字元、或小數點,
且中間不可有空白隔開,沒有真正的負數(但是有負號運算取代)。
以下為合法的數字:
3 、 3. 、 .2 、 0.3 、 1e+4 、 2.0e-3
(3)函式說明:
sin x、asin x:正弦函數、反正弦函數,asin sin (pi/2) = 1.570...
cos x、acos x:餘弦函數、反餘弦函數,acos cos (pi/2) = 1.570...
tan x、atan x:正切函數、反正切函數,atan tan (pi/2) = 1.570...
exp x:以 e 為底的指數函數,exp 1 = 2.71828...
ln x:以 e 為底的對數函數,ln exp 1 = 1
log x:以 10 為底的對數函數,log 10 = 1
sqrt x:平方根函數,sqrt 9 = 3
x ^ y:次方函數,2^3 = 8,
注意:x 為負數時、y 為小數時,會發生計算機運算的錯誤!
如:(-2)^(2/3),可換成((-2)^2)^(1/3)來解決此問題!
x mod y:求餘函數,9.1 mod 3 = 0.1
(4)變數說明:
x:預設之變數,輸入 x 時可用運算式,如 exp ans 、 2x+1
pi:圓周率,3.14159...
ans:最後一次的運算結果。
(5)角度、弳度量之選擇:
當 ○ degree ☉ radian 時,為弳度量。
當 ☉ degree ○ radian 時,為角度量。
內定為弳度量運算,此選擇只對三角函數有影響。
(6)輸出、輸入說明:
postfix:顯示將運算式化為後序運算式之結果。
answer:顯示運算結果,如有錯誤,亦顯示在此。
input:為輸入運算式的文字欄。
x:可輸入一運算式,當成變數 x 之值。
(7)特殊鍵說明:
Ac:清除運算結果。
Exec:開始執行。
New Window:開啟新的程式。
(8)特殊用法:
0.00001:10^-5 = 1/100000 = 1e-5
五分之一:5^-1 = 1/5
五的負二次方:5^-2 = 1/(5*2)
根號三:3^(1/2) = 3^2^-1 = 1.732...
八的立方根:8^(1/3) = 8^3^-1 = 2
以十為底的對數函數:log x = ln x/ln 10
以二十為底的對數函數:ln x/ln 20 = log x/log 20
計算半徑為 x 之圓面積:pi x^2
計算 sin x 之不動點:sin ans(重複執行,直到 ans 固定)
運算式最後之右括號可省略:(5*(3-(3+2)*6 = (5*(3-(3+2)*6))
(9)參考資料:計算機 CASIO fx-4500p